home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 35 / Amiga Format AFCD35 (Issue 119, Jan 1999).iso / -screenplay- / hd_installers / civilization / install_civilization < prev    next >
Text File  |  1998-11-09  |  4KB  |  195 lines

  1. ; Replacement hard drive installer for Civilization (ECS). V1.0.
  2. ; Copyright © 1998 Neil Cafferkey.
  3. ; $VER: "Install Civilization" 1.0 (2.11.98)
  4.  
  5.  
  6. ; Set constants
  7.  
  8. (set #extra-dir-name "exe")
  9. (set #read-me-name "Read Me")
  10.  
  11. (set #generic-disk-name "CIV%ld")
  12. (set #generic-disk-desc "Disk %s")
  13. (set #disk-count 4)
  14.  
  15. (set #kick-too-low-msg "Kickstart 2.0 or greater is required.")
  16. (set #askdir-prompt
  17.    (cat "Where should %s be installed?\nA drawer called \"%s\" will be"
  18.       " created within the selected location."
  19.    )
  20. )
  21. (set #dest-exists-msg "\"%s\" already exists.")
  22. (set #ask-deprotect-prompt
  23.    "Do you want to remove the copy protection?"
  24. )
  25. (set #ask-deprotect-help
  26.    (cat "If you select `Yes' you'll avoid having to look up the"
  27.       " requirements for a civilisation advance in the manual."
  28.    )
  29. )
  30. (set #askdisk-prompt "Please insert %s in any drive")
  31. (set #askdisk-help
  32.    (cat "Put %s into one of your floppy disk drives if you want to"
  33.       " continue."
  34.    )
  35. )
  36. (set #no-deprotect-msg "The copy protection could not be removed.")
  37.  
  38.  
  39. ; Check Kickstart version
  40.  
  41. (if (< (/ (getversion) 65536) 36)
  42.    (abort #kick-too-low-msg)
  43. )
  44.  
  45.  
  46. ; Ask where to install to
  47.  
  48. (set #default-dest
  49.    (tackon
  50.       (askdir
  51.          (prompt (#askdir-prompt @app-name @app-name))
  52.          (default @default-dest)
  53.          (help @askdir-help)
  54.          (disk)
  55.       )
  56.       @app-name
  57.    )
  58. )
  59.  
  60. (set @default-dest #default-dest)
  61.  
  62.  
  63. ; Check that destination directory doesn't already exist and create it
  64.  
  65. (if (OR (exists @default-dest) (exists (cat @default-dest ".info")))
  66.    (abort (#dest-exists-msg @default-dest))
  67.    (
  68.       (makedir @default-dest (infos))
  69.       (makedir (tackon @default-dest #extra-dir-name))
  70.       (onerror
  71.          (run
  72.             ("Delete \"%s\" \"%s\" ALL FORCE"
  73.                @default-dest (cat @default-dest ".info")
  74.             )
  75.          )
  76.       )
  77.    )
  78. )
  79.  
  80.  
  81. ; Ask whether the user wants to deprotect the game
  82.  
  83. (set #deprotect
  84.    (if (= 0 (run "Which Change" (safe)))
  85.       (askbool (prompt #ask-deprotect-prompt) (help #ask-deprotect-help))
  86.       0
  87.    )
  88. )
  89.  
  90.  
  91. ; Copy icons
  92.  
  93. (copyfiles
  94.    (source "hidden")
  95.    (dest @default-dest)
  96.    (all)
  97.    (nogauge)
  98.    (help @copyfiles-help)
  99. )
  100.  
  101.  
  102. ; Create startup-script
  103.  
  104. (textfile
  105.    (dest (tackon @default-dest @app-name))
  106.    (append "failat 20\n")
  107.    (set #i 0)
  108.    (while (< #i #disk-count)
  109.       (set #disk-name (#generic-disk-name (+ #i 1)))
  110.       (append ("Assign \"%s:\" \"%s\"\n" #disk-name #extra-dir-name))
  111.       (set #i (+ #i 1))
  112.    )
  113.    (append
  114.       (cat "Assign \"FONTS:\" \"fonts\" ADD\n"
  115.          ("CD \"%s\"\ngame\nCD \"/\"\n" #extra-dir-name)
  116.          "Assign \"FONTS:\" \"fonts\" REMOVE\n"
  117.       )
  118.    )
  119.    (while (> #i 0)
  120.       (set #i (- #i 1))
  121.       (set #disk-name (#generic-disk-name (+ #i 1)))
  122.       (append ("Assign \"%s:\" REMOVE\n" #disk-name))
  123.    )
  124. )
  125.  
  126.  
  127. ; Give script permission to startup-script
  128.  
  129. (protect (tackon @default-dest @app-name) "+s -e")
  130.  
  131.  
  132. ; Copy files from each disk
  133.  
  134. (set #i 0)
  135.  
  136. (while (< #i #disk-count)
  137.    (set #disk-name (#generic-disk-name (+ #i 1)))
  138.    (set #disk-desc (#generic-disk-desc (select #i "A" "B" "C" "D")))
  139.    (askdisk
  140.       (dest #disk-name)
  141.       (prompt (#askdisk-prompt #disk-desc))
  142.       (help (#askdisk-help ("%s %s" @app-name #disk-desc)))
  143.    )
  144.    (if (= (+ #i 1) 1)
  145.       (copyfiles
  146.          (source (cat #disk-name ":"))
  147.          (dest @default-dest)
  148.          (pattern "(fonts|readme.doc)")
  149.          (help @copyfiles-help)
  150.       )
  151.    )
  152.    (copyfiles
  153.       (source (cat #disk-name ":"))
  154.       (dest (tackon @default-dest #extra-dir-name))
  155.       (pattern
  156.          (select #i
  157.             "~(readme.doc|rinstall|#?.info)"
  158.             "([abcfghilmnrw]|el|sad.|sal|sh|st)#?"
  159.             "(ba|he|k|nu|sl|wi)#?"
  160.             "(ad|ci|di|er|fa|hi|in|lo|nuke1|po|pr|ri|se|sp257|wo)#?"
  161.          )
  162.       )
  163.       (files)
  164.       (help @copyfiles-help)
  165.    )
  166.    (set #i (+ #i 1))
  167. )
  168.  
  169.  
  170. ; Remove copy protection
  171.  
  172. (if (AND (NOT @pretend) #deprotect)
  173.    (if
  174.       (<> 0
  175.          (run
  176.             ("Change \"%s\" \"%s\""
  177.                (tackon @default-dest (tackon #extra-dir-name "game"))
  178.                "game.change"
  179.             )
  180.          )
  181.       )
  182.       (message #no-deprotect-msg)
  183.    )
  184. )
  185.  
  186.  
  187. ; Change name of `readme.doc'
  188.  
  189. (rename
  190.    (tackon @default-dest "readme.doc")
  191.    (tackon @default-dest #read-me-name)
  192. )
  193.  
  194.  
  195.